package vista;

import java.awt.BorderLayout;
import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;
import javax.swing.SwingConstants;

import java.awt.Font;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

public class Ayuda extends JFrame {
	
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextArea contenidoTexto;

	public Ayuda() {		
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 480, 320);
		setTitle("Ayuda");
		setIconImage(new ImageIcon("iconos/ayuda.png").getImage());
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JLabel titulo = new JLabel("Ayuda");
		titulo.setFont(new Font("Tahoma", Font.BOLD, 15));
		titulo.setHorizontalAlignment(SwingConstants.CENTER);		
		titulo.setAlignmentX(CENTER_ALIGNMENT);
		contentPane.add(titulo, BorderLayout.NORTH);
		
		JPanel categoriasPanel = new JPanel();
		categoriasPanel.setLayout(new BoxLayout(categoriasPanel, BoxLayout.Y_AXIS));
		JRadioButton rdbtnObjetivo = new JRadioButton("Objetivo");
		rdbtnObjetivo.addMouseListener(this.getListenerBotonContenido("ayuda/objetivo.txt"));		
		rdbtnObjetivo.setSelected(true);
		
		JRadioButton rdbtnPuntos = new JRadioButton("Puntos");
		rdbtnPuntos.addMouseListener(this.getListenerBotonContenido("ayuda/puntos.txt"));
		
		JRadioButton rdbtnNaves = new JRadioButton("Naves");
		rdbtnNaves.addMouseListener(this.getListenerBotonContenido("ayuda/naves.txt"));
		
		JRadioButton rdbtnDisparos = new JRadioButton("Disparos");
		rdbtnDisparos.addMouseListener(this.getListenerBotonContenido("ayuda/disparos.txt"));
		
		categoriasPanel.add(rdbtnObjetivo);
		categoriasPanel.add(rdbtnPuntos);
		categoriasPanel.add(rdbtnNaves);
		categoriasPanel.add(rdbtnDisparos);
		
		ButtonGroup grupoBotonesCategorias = new ButtonGroup();
		grupoBotonesCategorias.add(rdbtnObjetivo);
		grupoBotonesCategorias.add(rdbtnPuntos);
		grupoBotonesCategorias.add(rdbtnNaves);
		grupoBotonesCategorias.add(rdbtnDisparos);
		
		contentPane.add(categoriasPanel, BorderLayout.WEST);
		
		
		this.contenidoTexto = new JTextArea();
		this.contenidoTexto.setEditable(false);		
		
		this.setContenidoTexto("ayuda/objetivo.txt");
		
		
		JScrollPane textoScrolls = new JScrollPane(this.contenidoTexto);		
		contentPane.add(textoScrolls, BorderLayout.CENTER);
	}
	
	private void setContenidoTexto(String direccionArchivo){
		try {
			FileReader fr = new FileReader(direccionArchivo);
			BufferedReader reader = new BufferedReader(fr);
			do {
				this.contenidoTexto.read(reader, "contenido");
			} while( reader.readLine() != null);
			reader.close();			
		} catch (IOException ioe) { }		
	}
	
	
	
	private MouseListener getListenerBotonContenido(String direccionArchivo) {
		return new EscucharBotonContenido(direccionArchivo);
	}

	public class EscucharBotonContenido implements MouseListener {		
		private String direccion;
		
		public EscucharBotonContenido(String direccionArchivo) {
			this.direccion = direccionArchivo;
		}		

		public void mouseClicked(MouseEvent arg0) {
			setContenidoTexto(this.direccion);			
		}

		public void mouseEntered(MouseEvent e) { }		
		public void mouseExited(MouseEvent e) { }		
		public void mousePressed(MouseEvent e) { }		
		public void mouseReleased(MouseEvent e) { }
	}

}
